﻿namespace NTLib.WPF.Interactions
{
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows;

    /// <summary>
    /// Interaction element used to route interaction from the UI to code easily
    /// </summary>
    public interface IInteraction
    {
        #region Properties

        /// <summary>
        /// Gets the data context.
        /// </summary>
        /// <remarks>
        /// Every binding that will followed must Specify this property has source because only FrameworkElement inherite each other from the data context.
        /// </remarks>
        object DataContext { get; }

        #endregion

        #region Methods

        /// <summary>
        /// Attacheds the specified object.
        /// </summary>
        /// <param name="obj">The object.</param>
        void Attached(DependencyObject obj);

        /// <summary>
        /// Dettacheds the specified object.
        /// </summary>
        void Detached();

        #endregion
    }
}
